package com.reservation.service;

import com.reservation.dto.staff.StartUseDTO;
import com.reservation.vo.staff.*;

import java.util.List;

public interface StaffService {

    /**
     * 获取会议室列表
     *
     * @return 会议室列表
     */
    List<MeetingRoomVO> getMeetingRoomList();

    /**
     * 获取待审核的取消预约列表
     *
     * @return 待审核列表
     */
    List<WaitAuditItemVO> getWaitAuditList();

    /**
     * 审核通过取消申请（需客户确认）
     *
     * @param id 订单ID
     * @return 是否处理成功
     */
    boolean auditPass(Long id);

    /**
     * 审核拒绝取消申请
     *
     * @param id 订单ID
     * @return 是否处理成功
     */
    boolean auditFail(Long id);    /**
     * 获取今日预约列表
     *
     * @return 今日预约列表
     */
    List<TodayReserveItemVO> getTodayReserveList();
    
    /**
     * 获取使用完毕列表
     *
     * @return 使用完毕列表
     */
    List<UseFinishedItemVO> getUseFinishedList();
    
    /**
     * 将会议室设置为空闲状态
     *
     * @param id 订单ID
     * @return 是否操作成功
     */
    boolean setFree(Long id);
    
    /**
     * 将会议室设置为维护状态
     *
     * @param id 订单ID
     * @return 是否操作成功
     */
    boolean setMaintenance(Long id);
      /**
     * 开始使用会议室（更改预约状态为使用中）
     *
     * @param startUseDTO 开始使用DTO，包含预约ID
     * @return 是否处理成功
     */
    boolean startUse(StartUseDTO startUseDTO);
    
    /**
     * 获取维护中的会议室列表
     *
     * @return 维护中的会议室列表
     */
    List<MaintenanceRoomVO> getMaintenanceList();
      /**
     * 完成会议室维护
     *
     * @param roomId 会议室ID
     * @return 是否处理成功
     */
    boolean finishMaintenance(Long roomId);
}
